ASP.NET Core 2.0入门

创建一个空白Web API

作者:陈广 日期:2018-2-4


上一篇文章,我们了解了如何安装开发环境,并生成了一个Hello World的程序。但那个程序只是在服务器内部运行,没有任何跟外部的交流。今天我们来写一个最简单的Web API。也就是服务端运行一个程序,监听特定端口,当有客户端发出连接请求时,服务器会返回特定内容。

ASP.NET Core 2.0在开发Web应用时有几种形式,Web API、Razor和MVC。后两种不但写服务端应用,还包含了客户端页面的显示样式及信息,也就是View(视图)。而Web API则不关心客户端(也就是浏览器)显示成什么样子,只以特定格式返回数据,如json或xml,至于浏览器如何显示这些信息,就不关心了。以上只是个人粗浅的理解。

创建空白项目

在vs2017中,创建项目时选择ASP.NET Core Web应用程序,然后选择即可创建一个空白项目。当然vscode中就没有这么直观了,但也很简单。

首先打开控制台,并运行以下两条命令,在硬盘某个地方创建一个api文件夹,并进入到新建的api文件夹。

mkdir api
cd api

接下来输入:

dotnet new empty

此命令创建了一个空白项目,用vscode打开api 文件夹后,效果如下图所示:

点击上方弹出警告信息中的Yes 按钮,然后按下Ctrl+Shift+D 打开调试窗口。点击调试窗口中的绿色箭头运行程序。vscode运行程序后自动打开浏览器,并显示“Hello World!”。如下图所示: 观察浏览器地址栏,URL为

http://localhost:5000/

点击vscode窗口上方浮动工具条中的红色矩形按钮停止程序运行。

这次的程序跟上一次是有本质不同的,上次的hello world只是服务器自己玩,在服务的控制台显示了字符串hello world。而这次项目则是服务器运行程序监听5000端口,当有客户端浏览器向服务器发出请求(request)时,服务器响应(response)这个请求,返回“Hello World!”字符串给客户端浏览器,最后客户端显示返回的这个字符串。

下面我们来寻找hello world是在哪发出的。vscode中按下Ctrl+Shift+E 打开资源管理器,选择Startup.cs 文件,找到如下代码:

await context.Response.WriteAsync("Hello World!");

更改为:

await context.Response.WriteAsync("<h1>My First Web API</h1>");

运行程序,显示效果如下图所示: 这回h1 标签也被正确解析。可尝试返回中文,但浏览器显示乱码,需将浏览器编码改为UTF-8方能正常显示。

现在我们知道服务器是使用context.Response.WriteAsync() 方法来向客户端的浏览器写东西的。await 关键字表示写这个动作是以异步的方式进行的,这里使用了微软的最新的,引以为傲的异步编程模型。将来有时间,我也会回过头去写相关文章。

;

© 2018 - IOT小分队文章发布系统 v0.3